﻿
namespace Petra.Gis.Geometry.Image.Tiff
{

  public partial class Tag
  {
    public enum TagId
    {
      UNKNOWN = 0, //for unknown tags

      SUBFILETYPE = 254,	//subfile data descriptor
      OSUBFILETYPE = 255,	//+kind of data in subfile
      IMAGEWIDTH = 256,	//image width in pixels
      IMAGELENGTH = 257,	//image height in pixels
      BITSPERSAMPLE = 258,	//bits per channel (sample)
      COMPRESSION = 259,	//data compression technique
      PHOTOMETRIC = 262,	//photometric interpretation
      THRESHHOLDING = 263,	//+thresholding used on data
      CELLWIDTH = 264,	//+dithering matrix width
      CELLLENGTH = 265,	//+dithering matrix height
      FILLORDER = 266,	//data order within a byte
      DOCUMENTNAME = 269,	//name of doc. image is from
      IMAGEDESCRIPTION = 270,	//info about image
      MAKE = 271,	//scanner manufacturer name
      MODEL = 272,	//scanner model name/number
      STRIPOFFSETS = 273,	//offsets to data strips
      ORIENTATION = 274,	//+image orientation
      SAMPLESPERPIXEL = 277,	//samples per pixel
      ROWSPERSTRIP = 278,	//rows per strip of data
      STRIPBYTECOUNTS = 279,	//bytes counts for strips
      MINSAMPLEVALUE = 280,	//+minimum sample value
      MAXSAMPLEVALUE = 281,	//+maximum sample value
      XRESOLUTION = 282,	//pixels/resolution in x
      YRESOLUTION = 283,	//pixels/resolution in y
      PLANARCONFIG = 284,	//storage organization
      PAGENAME = 285,	//page name image is from
      XPOSITION = 286,	//x page offset of image lhs
      YPOSITION = 287,	//y page offset of image lhs
      FREEOFFSETS = 288,	//+byte offset to free block
      FREEBYTECOUNTS = 289,	//+sizes of free blocks
      GRAYRESPONSEUNIT = 290,	//$gray scale curve accuracy
      GRAYRESPONSECURVE = 291,	//$gray scale response curve
      GROUP3OPTIONS = 292,	//32 flag bits
      T4OPTIONS = 292,	//TIFF 6.0 proper name alias
      GROUP4OPTIONS = 293,	//32 flag bits
      T6OPTIONS = 293,     //TIFF 6.0 proper name
      RESOLUTIONUNIT = 296,	//units of resolutions
      PAGENUMBER = 297,	//page numbers of multi-page
      COLORRESPONSEUNIT = 300,	//$color curve accuracy
      TRANSFERFUNCTION = 301,	//!colorimetry info
      SOFTWARE = 305,	//name & release
      DATETIME = 306,	//creation date and time
      ARTIST = 315,	//creator of image
      HOSTCOMPUTER = 316,	//machine where created
      PREDICTOR = 317,	//prediction scheme w/ LZW
      WHITEPOINT = 318,	//image white point
      PRIMARYCHROMATICITIES = 319,	//!primary chromaticities
      COLORMAP = 320,	//RGB map for pallette image
      HALFTONEHINTS = 321,	//!highlight+shadow info
      TILEWIDTH = 322,	//!tile width in pixels
      TILELENGTH = 323,	//!tile height in pixels
      TILEOFFSETS = 324,	//!offsets to data tiles
      TILEBYTECOUNTS = 325,	//!byte counts for tiles
      BADFAXLINES = 326,	//lines w/ wrong pixel count
      CLEANFAXDATA = 327,	//regenerated line info
      MAXCONSECBADFAXLINES = 328,	//max consecutive bad lines
      SUBIFD = 330,	//subimage descriptors
      INKSET = 332,	//!inks in separated image
      INKNAMES = 333,	//!ascii names of inks
      NUMBEROFINKS = 334,	//!number of inks
      DOTRANGE = 336,	//!0% and 100% dot codes
      TARGETPRINTER = 337,	//!separation target
      EXTRASAMPLES = 338,	//!info about extra samples
      SAMPLEFORMAT = 339,	//!data sample format
      SMINSAMPLEVALUE = 340,	//!variable MinSampleValue
      SMAXSAMPLEVALUE = 341,	//!variable MaxSampleValue
      CLIPPATH = 343,	//%ClipPath [Adobe TIFF technote 2]
      XCLIPPATHUNITS = 344,	//%XClipPathUnits [Adobe TIFF technote 2]
      YCLIPPATHUNITS = 345,	//%YClipPathUnits [Adobe TIFF technote 2]
      INDEXED = 346,	//%Indexed [Adobe TIFF technote 3]
      JPEGTABLES = 347,	//%JPEG table stream
      OPIPROXY = 351,	//%OPI Proxy [Adobe TIFF technote]

      /*
       * Tags 512-521 are obsoleted by Technical Note #2 which specifies a
       * revised JPEG-in-TIFF scheme.
       */
      JPEGPROC = 512,	/* !JPEG processing algorithm */
      JPEGIFOFFSET = 513,	/* !pointer to SOI marker */
      JPEGIFBYTECOUNT = 514,	/* !JFIF stream length */
      JPEGRESTARTINTERVAL = 515,	/* !restart interval length */
      JPEGLOSSLESSPREDICTS = 517,	/* !lossless proc predictor */
      JPEGPOINTTRANSFORM = 518,	/* !lossless point transform */
      JPEGQTABLES = 519,	/* !Q matrice offsets */
      JPEGDCTABLES = 520,	/* !DCT table offsets */
      JPEGACTABLES = 521,	/* !AC coefficient offsets */
      YCBCRCOEFFICIENTS = 529,	/* !RGB -> YCbCr transform */
      YCBCRSUBSAMPLING = 530,	/* !YCbCr subsampling factors */
      YCBCRPOSITIONING = 531,	/* !subsample positioning */
      REFERENCEBLACKWHITE = 532,	/* !colorimetry info */
      XMLPACKET = 700,	/* %XML packet [Adobe XMP Specification, January 2004 */
      OPIIMAGEID = 32781,	/* %OPI ImageID [Adobe TIFF technote] */

      /* tags 32952-32956 are private tags registered to Island Graphics */
      REFPTS = 32953,	/* image reference points */
      REGIONTACKPOINT = 32954,	/* region-xform tack point */
      REGIONWARPCORNERS = 32955,	/* warp quadrilateral */
      REGIONAFFINE = 32956,	/* affine transformation mat */

      /* tags 32995-32999 are private tags registered to SGI */
      MATTEING = 32995,	/* $use ExtraSamples */
      DATATYPE = 32996,	/* $use SampleFormat */
      IMAGEDEPTH = 32997,	/* z depth of image */
      TILEDEPTH = 32998,	/* z depth/data tile */

      /* tags 33300-33309 are private tags registered to Pixar
       *
       * TIFFTAG_PIXAR_IMAGEFULLWIDTH and TIFFTAG_PIXAR_IMAGEFULLLENGTH
       * are set when an image has been cropped out of a larger image.  
       * They reflect the size of the original uncropped image.
       * The TIFFTAG_XPOSITION and TIFFTAG_YPOSITION can be used
       * to determine the position of the smaller image in the larger one.
       */
      PIXAR_IMAGEFULLWIDTH = 33300,   /* full image size in x */
      PIXAR_IMAGEFULLLENGTH = 33301,   /* full image size in y */

      /* Tags 33302-33306 are used to identify special image modes and data
       * used by Pixar's texture formats.
       */
      PIXAR_TEXTUREFORMAT = 33302,	/* texture map format */
      PIXAR_WRAPMODES = 33303,	/* s & t wrap modes */
      PIXAR_FOVCOT = 33304,	/* cotan(fov) for env. maps */
      PIXAR_MATRIX_WORLDTOSCREEN = 33305,
      PIXAR_MATRIX_WORLDTOCAMERA = 33306,

      /* tag 33405 is a private tag registered to Eastman Kodak */
      WRITERSERIALNUMBER = 33405,   /* device serial number */

      /* tag 33432 is listed in the 6.0 spec w/ unknown ownership */
      COPYRIGHT = 33432,	/* copyright string */

      /* IPTC TAG from RichTIFF specifications */
      RICHTIFFIPTC = 33723,

      /*
       * Files written by the Intergraph software
       * has different sampling factors stored in the
       * TIFF tags and in the JPEG structures. We will
       * try to deduce Intergraph files by the presense
       * of the tag 33918.
       */
      INTERGRAPH_MAINIMAGE = 33918, //this is main image
      INTERGRAPH_OVERVIEW = 33919, //overview image (any level)

      /* 34016-34029 are reserved for ANSI IT8 TIFF/IT <dkelly@apago.com) */
      IT8SITE = 34016,	/* site name */
      IT8COLORSEQUENCE = 34017,	/* color seq. [RGB,CMYK,etc] */
      IT8HEADER = 34018,	/* DDES Header */
      IT8RASTERPADDING = 34019,	/* raster scanline padding */
      IT8BITSPERRUNLENGTH = 34020,	/* # of bits in short run */
      IT8BITSPEREXTENDEDRUNLENGTH = 34021,/* # of bits in long run */
      IT8COLORTABLE = 34022,	/* LW colortable */
      IT8IMAGECOLORINDICATOR = 34023,	/* BP/BL image color switch */
      IT8BKGCOLORINDICATOR = 34024,	/* BP/BL bg color switch */
      IT8IMAGECOLORVALUE = 34025,	/* BP/BL image color value */
      IT8BKGCOLORVALUE = 34026,	/* BP/BL bg color value */
      IT8PIXELINTENSITYRANGE = 34027,	/* MP pixel intensity value */
      IT8TRANSPARENCYINDICATOR = 34028,	/* HC transparency switch */
      IT8COLORCHARACTERIZATION = 34029,	/* color character. table */
      IT8HCUSAGE = 34030,	/* HC usage indicator */
      IT8TRAPINDICATOR = 34031,	/* Trapping indicator (untrapped=0, trapped=1) */
      IT8CMYKEQUIVALENT = 34032,	/* CMYK color equivalents */

      /* tags 34232-34236 are private tags registered to Texas Instruments */
      FRAMECOUNT = 34232,	/* Sequence Frame Count */

      /* tag 34377 is private tag registered to Adobe for PhotoShop */
      PHOTOSHOP = 34377,

      /* tags 34665, 34853 and 40965 are documented in EXIF specification */
      EXIFIFD = 34665,	/* Pointer to EXIF private directory */

      /* tag 34750 is a private tag registered to Adobe? */
      ICCPROFILE = 34675,	/* ICC profile data */

      /* tag 34750 is a private tag registered to Pixel Magic */
      JBIGOPTIONS = 34750,	/* JBIG options */
      GPSIFD = 34853,	/* Pointer to GPS private directory */

      /* tags 34908-34914 are private tags registered to SGI */
      FAXRECVPARAMS = 34908,	/* encoded Class 2 ses. parms */
      FAXSUBADDRESS = 34909,	/* received SubAddr string */
      FAXRECVTIME = 34910,	/* receive time (secs) */
      FAXDCS = 34911,	/* encoded fax ses. params, Table 2/T.30 */

      /* tags 37439-37443 are registered to SGI <gregl@sgi.com> */
      STONITS = 37439,	/* Sample value to Nits */

      /* tag 34929 is a private tag registered to FedEx */
      FEDEX_EDR = 34929,	/* unknown use */
      INTEROPERABILITYIFD = 40965,	/* Pointer to Interoperability private directory */

      /* Adobe Digital Negative (DNG) format tags */
      DNGVERSION = 50706,	/* &DNG version number */
      DNGBACKWARDVERSION = 50707,	/* &DNG compatibility version */
      UNIQUECAMERAMODEL = 50708,	/* &name for the camera model */
      LOCALIZEDCAMERAMODEL = 50709,	/* &localized camera model name */
      CFAPLANECOLOR = 50710,	/* &CFAPattern->LinearRaw space mapping */
      CFALAYOUT = 50711,	/* &spatial layout of the CFA */
      LINEARIZATIONTABLE = 50712,	/* &lookup table description */
      BLACKLEVELREPEATDIM = 50713,	/* &repeat pattern size for the BlackLevel tag */
      BLACKLEVEL = 50714,	/* &zero light encoding level */
      BLACKLEVELDELTAH = 50715,	/* &zero light encoding level differences (columns) */
      BLACKLEVELDELTAV = 50716,	/* &zero light encoding level  differences (rows) */
      WHITELEVEL = 50717,	/* &fully saturated encoding level */
      DEFAULTSCALE = 50718,	/* &default scale factors */
      DEFAULTCROPORIGIN = 50719,	/* &origin of the final image area */
      DEFAULTCROPSIZE = 50720,	/* &size of the final image area */
      COLORMATRIX1 = 50721,	/* &XYZ->reference color space transformation matrix 1 */
      COLORMATRIX2 = 50722,	/* &XYZ->reference color space transformation matrix 2 */
      CAMERACALIBRATION1 = 50723,	/* &calibration matrix 1 */
      CAMERACALIBRATION2 = 50724,	/* &calibration matrix 2 */
      REDUCTIONMATRIX1 = 50725,	/* &dimensionality reduction matrix 1 */
      REDUCTIONMATRIX2 = 50726,	/* &dimensionality reduction matrix 2 */
      ANALOGBALANCE = 50727,	/* &gain applied the stored raw values*/
      ASSHOTNEUTRAL = 50728,	/* &selected white balance in linear reference space */
      ASSHOTWHITEXY = 50729,	/* &selected white balance in x-y chromaticity coordinates */
      BASELINEEXPOSURE = 50730,	/* &how much to move the zero point */
      BASELINENOISE = 50731,	/* &relative noise level */
      BASELINESHARPNESS = 50732,	/* &relative amount of sharpening */

      /* defines &how closely the values of the green pixels in the
       * blue/green rows track the values of the green pixels 
       * in the red/green rows */
      BAYERGREENSPLIT = 50733,
      LINEARRESPONSELIMIT = 50734,	/* &non-linear encoding range */
      CAMERASERIALNUMBER = 50735,	/* &camera's serial number */
      LENSINFO = 50736,	/* info about the lens */
      CHROMABLURRADIUS = 50737,	/* &chroma blur radius */
      ANTIALIASSTRENGTH = 50738,	/* &relative strength of the camera's anti-alias filter */
      SHADOWSCALE = 50739,	/* &used by Adobe Camera Raw */
      DNGPRIVATEDATA = 50740,	/* &manufacturer's private data */

      /* &whether the EXIF MakerNote tag is safe to preserve
       * along with the rest of the EXIF data */
      MAKERNOTESAFETY = 50741,
      CALIBRATIONILLUMINANT1 = 50778,	/* &illuminant 1 */
      CALIBRATIONILLUMINANT2 = 50779,	/* &illuminant 2 */
      BESTQUALITYSCALE = 50780,	/* &best quality multiplier */
      RAWDATAUNIQUEID = 50781,	/* &unique identifier for the raw image data */
      ORIGINALRAWFILENAME = 50827,	/* &file name of the original raw file */
      ORIGINALRAWFILEDATA = 50828,	/* &contents of the original raw file */
      ACTIVEAREA = 50829,	/* &active (non-masked) pixels of the sensor */
      MASKEDAREAS = 50830,	/* &list of coordinates of fully masked pixels */
      ASSHOTICCPROFILE = 50831,	/* &these two tags used to */
      ASSHOTPREPROFILEMATRIX = 50832,	/* map cameras's color space into ICC profile space */
      CURRENTICCPROFILE = 50833,	/* & */
      CURRENTPREPROFILEMATRIX = 50834,	/* & */

      /* tag 65535 is an undefined tag used by Eastman Kodak */
      DCSHUESHIFTVALUES = 65535,   /* hue shift correction data */

      /*
       * The following are ``pseudo tags'' that can be used to control
       * codec-specific functionality.  These tags are not written to file.
       * Note that these values start at 0xffff+1 so that they'll never
       * collide with Aldus-assigned tags.
       *
       * If you want your private pseudo tags ``registered'' (i.e. added to
       * this file), please post a bug report via the tracking system at
       * http://www.remotesensing.org/libtiff/bugs.html with the appropriate
       * C definitions to add.
       */
      FAXMODE = 65536,	/* Group 3/4 format control */
      JPEGQUALITY = 65537,	/* Compression quality level */

      /* Note: quality level is on the IJG 0-100 scale.  Default value is 75 */
      JPEGCOLORMODE = 65538,	/* Auto RGB<=>YCbCr convert? */
      JPEGTABLESMODE = 65539,	/* What to put in JPEGTables */

      /* Note: default is JPEGTABLESMODE_QUANT | JPEGTABLESMODE_HUFF */
      FAXFILLFUNC = 65540,	/* G3/G4 fill function */
      PIXARLOGDATAFMT = 65549,	/* PixarLogCodec I/O data sz */

      /* 65550-65556 are allocated to Oceana Matrix <dev@oceana.com> */
      DCSIMAGERTYPE = 65550,	/* imager model & filter */
      DCSINTERPMODE = 65551,	/* interpolation mode */
      DCSBALANCEARRAY = 65552,	/* color balance values */
      DCSCORRECTMATRIX = 65553,	/* color correction values */
      DCSGAMMA = 65554,	/* gamma value */
      DCSTOESHOULDERPTS = 65555,	/* toe & shoulder points */
      DCSCALIBRATIONFD = 65556,	/* calibration file desc */

      /* Note: quality level is on the ZLIB 1-9 scale. Default value is -1 */
      ZIPQUALITY = 65557,	/* compression quality level */
      PIXARLOGQUALITY = 65558,	/* PixarLog uses same scale */

      /* 65559 is allocated to Oceana Matrix <dev@oceana.com> */
      DCSCLIPRECTANGLE = 65559,	//area of image to acquire
      SGILOGDATAFMT = 65560,	//SGILog user data format
      SGILOGENCODE = 65561,	//SGILog data encoding control

      /* tags 33550 is a private tag registered to SoftDesk, Inc */
      GEOPIXELSCALE = 33550,

      /* tags 33920-33921 are private tags registered to Intergraph, Inc */
      INTERGRAPH_MATRIX = 33920,   /* $use TIFFTAG_GEOTRANSMATRIX ! */
      GEOTIEPOINTS = 33922,

      /* tags 34263-34264 are private tags registered to NASA-JPL Carto Group */
      JPL_CARTO_IFD = 34263,    /* $use GeoProjectionInfo ! */

      GEOTRANSMATRIX = 34264,    /* New Matrix Tag replaces 33920 */
      /* tags 34735-3438 are private tags registered to SPOT Image, Inc */
      GEOKEYDIRECTORY = 34735,
      GEODOUBLEPARAMS = 34736,
      GEOASCIIPARAMS = 34737
    }
  }
}
